/*
 * TestThread.h
 *
 *  Created on: 8 déc. 2013
 *      Author: Raphaël
 */

#ifndef TESTTHREAD_H_
#define TESTTHREAD_H_

#include <thread>
namespace raph
{
class Thread
    {
    protected:
        /*-------------------------------------------------------------------
         attributs
         -------------------------------------------------------------------*/
        std::thread m_thread;
    public:
        /*-------------------------------------------------------------------
         constructor/destructor
         -------------------------------------------------------------------*/
        Thread();
        Thread(Thread&);
        Thread& operator=(Thread&);
        virtual ~Thread();
        /*-------------------------------------------------------------------
         public methods
         -------------------------------------------------------------------*/
        virtual void run() = 0;
        void start();
        void join();
        void detach();
    };

} /* namespace raph */

#endif /* TESTTHREAD_H_ */
